// Remap Array
// (c) jimon game studio

#include "jeRemapArray.h"
#include <memory.h>

namespace je
{
	namespace core
	{
		//! Remap Array
		void RemapArray(u8 * ArrayIn,u8 ArrayIn_ObjectSize,u32 ArrayIn_ObjectCount,u8 * ArrayOut,u8 ArrayOut_ObjectSize)
		{
			if(ArrayIn_ObjectSize != ArrayOut_ObjectSize)
				for(u32 i=0;i<ArrayIn_ObjectCount;i++)
					#ifdef JE_MSVC
					memcpy_s(ArrayOut+i*ArrayOut_ObjectSize,(ArrayIn_ObjectSize>ArrayOut_ObjectSize)?ArrayOut_ObjectSize:ArrayIn_ObjectSize,ArrayIn+i*ArrayIn_ObjectSize,(ArrayIn_ObjectSize>ArrayOut_ObjectSize)?ArrayOut_ObjectSize:ArrayIn_ObjectSize);
					#else
					memcpy(ArrayOut+i*ArrayOut_ObjectSize,ArrayIn+i*ArrayIn_ObjectSize,(ArrayIn_ObjectSize>ArrayOut_ObjectSize)?ArrayOut_ObjectSize:ArrayIn_ObjectSize);
					#endif
			else
				#ifdef JE_MSVC
				memcpy_s(ArrayOut,ArrayIn_ObjectCount*ArrayIn_ObjectSize,ArrayIn,ArrayIn_ObjectCount*ArrayIn_ObjectSize);
				#else
				memcpy(ArrayOut,ArrayIn,ArrayIn_ObjectCount*ArrayIn_ObjectSize);
				#endif

		}
	}
}
